package com.yanjiali.service;

import com.yanjiali.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yanjiali.model.R;
import com.yanjiali.model.req.LogOutReq;
import com.yanjiali.model.resp.*;

import java.util.List;

/**
 * @Package: com.yanjiali.service
 * @Author: yanjiali
 * @Created: 2025/4/10 22:35
 * 普通用户登录接口类
*/
public interface UserService extends IService<User> {

    /**
     * 普通用户登录
     * @param username  用户名
     * @param password  密码
     * @return 登录返回对象
     */
    R<LoginResp> login(String username, String password);

    /**
     * 普通用户登出
     * @param logOutReq
     * @return
     */
    R<LogOutResp> logOut(LogOutReq logOutReq);

    /**
     * 通过id获取用户名
     * @param userId
     * @return
     */
    R<ObtainTheUsernameThroughTheIdResp> obtainTheUsernameThroughTheId(Long userId);

    /**
     * 通过用户名获取用户头像
     * @param username
     * @return
     */
    R<GetTheAvatarThroughTheUsernameResp> getTheAvatarThroughTheUsername(String username);

    /**
     * 通过用户id获取用户基本信息
     * @param userId
     * @return
     */
    R<GetTheBasicInformationOfTheUserByIDResp> getTheBasicInformationOfTheUserByID(Long userId);

    /**
     * 通过用户id获取用户基本信息，批量查询
     * @param userIds
     * @return
     */
    R<GetTheBasicInformationOfTheUserByIDsResp> getTheBasicInformationOfTheUserByIDs(List<Long> userIds);

    /**
     * 获取当前登录用户基本信息
     * @return
     */
    R<GetTheBasicInformationOfTheCurrentUserResp> getTheBasicInformationOfTheCurrentUser();
}
